package com.gonsin.gview.annotations.data;

import com.gonsin.gview.annotations.impl.EmptyTableDataPicker;
import com.gonsin.gview.annotations.interfaces.ITableDataPicker;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * 表格数据
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface GTableData {

    /**
     * 是否启用
     */
    boolean enable() default true;

    /**
     * 自定义dataId，如果没有自定义则会自动生成一个随机字符串作为dataId
     */
    String dataId() default "";

    /**
     * 通过dataPicker写java语句查询数据（此方法最为灵活）
     */
    Class<? extends ITableDataPicker> fromTableDataPicker() default EmptyTableDataPicker.class;

    /**
     * 通过dataPicker写java语句查询数据（此方法最为灵活）
     */
    String fromTableDataPickerClassName() default "";

    /**
     * 通过@GDataSource获取数据
     */
    String fromDataSource() default "";

    /**
     * 主键的字段名称
     */
    String keyName();
}
